﻿namespace Refract.UI.Docking
{
    using System;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Ink;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;

    using Refract.Event;

    public interface IDockable
    {
        #region Properties

        DockableState State
        {
            get;
        }

        #endregion Properties

        #region Methods

        void Close(SimpleCallback callback = null);

        void Maximize(SimpleCallback callback = null);

        void Minimize(SimpleCallback callback = null);

        void Restore(SimpleCallback callback = null);

        #endregion Methods
    }
}